/*
 * @Author: your name
 * @Date: 2022-01-14 15:15:14
 * @LastEditTime: 2022-02-22 17:32:24
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \vue-element-admin\src\main.js
 */
import Vue from 'vue'

import Cookies from 'js-cookie'

import 'normalize.css/normalize.css' // a modern alternative to CSS resets

import Element from 'element-ui'
import './styles/element-variables.scss'
// import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持，无需额外引入，请删除该依赖

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import './icons' // icon
import './permission' // permission control
import './utils/error-log' // error log

import common from './utils/common'
Vue.use(common)

import * as filters from './filters' // global filters

import 'moment/locale/zh-cn'
import moment from "moment"
Vue.prototype.$moment = moment //赋值使用 就是调用一下

moment.locale('zh-cn') // 这里是进行了汉化

import mixin from '@/mixin';
Vue.use(mixin);    //权限
// import  permission  from '@/directive/permission/index.js' // 权限判断指令



// Vue.directive('my-click',{
//   bind:function(el, binding, vnode, oldVnode){
//    el.addEventListener('click',function(e){
//     // console.log(e)
//     // console.log(el)
//     // alert(111)
//     console.log(el)
//     console.log(binding)
//     console.log(vnode)
//    },true)
//   }
//  })



// Vue.mixin({    //权限

//   beforeCreate(){
//     console.log(this.$options.methods)
//   },
//   // methods:{
//   //   clickOther(){
//   //     //  console.log(111)
//   //     //  this.$options.methods;
//   //   },
//   //    checkPermission(permissionName){
//   //     //  console.log(router.history.current.meta)
//   //      if(router.history.current.hasOwnProperty('meta') && router.history.current.meta.hasOwnProperty('permission')){
//   //           let permission = router.history.current.meta.permission 
//   //           if(permission.indexOf(permissionName) != -1){   //有该权限
//   //              return true
//   //           }
//   //      }
//   //      return false 
//   //    }
//   // }
// })

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

Vue.use(Element, {
  size: Cookies.get('size') || 'medium', // set element-ui default size
  // locale: enLang // 如果使用中文，无需设置，请删除
})

// register global utility filters
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
